<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>EDS API: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">EDS API
   </div>
   <div id="projectbrief">Enterprise Data Server Application Programming Interface</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('index.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">EDS API Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#overview">Overview</a><ul><li class="level2"><a href="#frontend">Frontend library</a></li>
<li class="level2"><a href="#backend">Backend libraries</a></li>
</ul>
</li>
<li class="level1"><a href="#getting_started">Getting started</a></li>
<li class="level1"><a href="#requirements">Requirements</a></li>
<li class="level1"><a href="#additional_topics">Additional topics</a></li>
</ul>
</div>
<div class="textblock"><h1><a class="anchor" id="overview"></a>
Overview</h1>
<p>EDS API is a set of C++ header files and libraries which allows connecting to EDS servers from external software.</p>
<p>All libraries provided in this SDK support Win32 and Linux and work with all versions of EDS from 7.3 upwards.</p>
<p>In order to support a wide range of EDS versions without having to constantly recompile and link software, EDS API has been split into two layers:</p>
<ul>
<li><a class="el" href="index.html#frontend">Frontend library</a> - version independent loader library</li>
<li><a class="el" href="index.html#backend">Backend libraries</a> - version dependent connector libraries</li>
</ul>
<h2><a class="anchor" id="frontend"></a>
Frontend library</h2>
<p>The EDS API frontend library is shipped in source code form in <code>edsapi/include</code> and <code>edsapi/src</code> directories. These files form a shim layer which automatically handles loading of appropriate backend libraries and hides differences in their APIs.</p>
<p>To use the frontend library, include all files from the <code>edsapi/src</code> directory in your project (i.e. by compiling them and linking into an executable / library).</p>
<p>If compiling the frontend with Visual C++, please disable Unicode support and make sure that C++ exceptions are enabled (using <code>/EHsc</code> or <code>/EHa</code> compiler switches).</p>
<p>Please refer to provided API reference for more information on the interface of the frontend library.</p>
<h2><a class="anchor" id="backend"></a>
Backend libraries</h2>
<p>The EDS API backend libraries are shipped in binary form in <code>edsapi/backend</code> subdirectories. Each of these directories contains one or more dynamic libraries (<code>.dll</code> files on Windows, <code>.so</code> files on Linux) which implement client protocol of a specific EDS version.</p>
<p>In order to connect from your application to a specific version of EDS server, all library files from appropriate <code>edsapi/backend</code> subdirectory need to be shipped as part of that application.</p>
<p>The EDS API frontend will try to dynamically load these backend libraries at runtime. Please make sure, that backend libraries are placed in a directory which is searched by the dynamic library loader.</p>
<p>The recommended locations for backend libraries are:</p>
<ul>
<li>the directory containing the main executable (.exe) of your application on Windows</li>
<li>a directory listed in the <code>LD_LIBRARY_PATH</code> environment variable on Linux platforms</li>
</ul>
<dl class="section warning"><dt>Warning</dt><dd>Please do not statically link your application with these libraries! The list of symbols exported from these files may change between EDS versions. The only supported method of linking with backend libraries is through the <a class="el" href="index.html#frontend">Frontend library</a>.</dd></dl>
<h1><a class="anchor" id="getting_started"></a>
Getting started</h1>
<p>This section outlines some basic steps required to use EDS API in a project:</p>
<ol type="1">
<li>Import all <code>.cpp</code> files from the <code>edsapi/frontend</code> into the project (they should be compiled and linked with the rest of project code).</li>
<li>Add the <code>edsapi/include</code> directory to the list of include file paths (use <code>/I</code> compiler switch for Microsoft Visual C++ and <code>-I</code> for GCC).</li>
<li>Decide which versions of EDS need to be supported by your application and copy all library files from appropriate <code>edsapi/backend</code> subdirectories to a path within your project. These files need to be shipped with your application.<br/>
 Make sure that the location of these libraries is searched by the dynamic library loader (<code>LoadLibrary</code> on Windows, <code>dlopen</code> on Linux). This may require additional steps on some operating systems (like adding that directory to the <code>LD_LIBRARY_PATH</code> environment variable on Linux).</li>
<li>Write code using classes from the <a class="el" href="index.html#frontend">Frontend library</a> to access data on the EDS server.<br/>
 For more information, please refer to the API reference and examples from the <code>edsapi/examples</code> directory.</li>
</ol>
<h1><a class="anchor" id="requirements"></a>
Requirements</h1>
<p>EDS API frontend library is designed to work with any C++ 2003 standard conforming compiler.</p>
<p>EDS API backend libraries are built for specific versions of operating system. Please always use backend libraries from appropriate EDS API distribution package for a given platform (OS version).</p>
<p>The following operating systems and compilers have been tested and are known to work correctly:</p>
<ul>
<li>Windows:<ul>
<li>Microsoft Visual C++ 2008</li>
</ul>
</li>
<li>Red Hat Enterprise Linux 5:<ul>
<li>GCC 4.1</li>
</ul>
</li>
<li>Red Hat Enterprise Linux 6:<ul>
<li>GCC 4.4</li>
</ul>
</li>
</ul>
<h1><a class="anchor" id="additional_topics"></a>
Additional topics</h1>
<ul>
<li><a class="el" href="compatibility.html">Supporting multiple EDS versions</a> - documents how to provide compatibility across several EDS versions</li>
<li><a class="el" href="error_handling.html">Error handling</a> - describes how errors are reported by EDS API</li>
<li><a class="el" href="point_ids.html">Process point identifiers</a> - explains differences between local and server point identifiers </li>
</ul>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Tue Jul 31 2012 17:22:10 for EDS API by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.2 </li>
  </ul>
</div>
</body>
</html>
